/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.si3.controlador;


import com.si3.modelo.Login;
import com.si3.modelo.Profesor;
import com.si3.modelo.Propuesta;
import com.si3.modelo.Usuario;
import com.si3.servicio.PropuestasService;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;


public class AddPropuestaController extends SimpleFormController
{
    private PropuestasService propuestasService;

    public void setPropuestasService(PropuestasService service)
    {
        this.propuestasService = service;
    }

    public PropuestasService getPropuestasService()
    {
        return propuestasService;
    }
    
    
    public AddPropuestaController()
    {
        setCommandClass(Propuesta.class);
        setCommandName("propuesta");
        setSuccessView("showMessage");
        setFormView("newPropuestaForm");
    }
    
  
    
    @Override
    protected ModelAndView onSubmit(HttpServletRequest request, 
                                    HttpServletResponse response, 
                                    Object command, 
                                    BindException errors) throws Exception 
    {
        ModelAndView mv = new ModelAndView(getSuccessView());
        
        Propuesta propuesta = (Propuesta) command;
        
        //añadir el dni del profesor que ha dado de alta la propuesta:
        Login loginObj = (Login) request.getSession().getAttribute("login");
        
        if (loginObj.getUserType() == Usuario.TipoUsuario.PROFESOR)
        {        
            Profesor profesor = (Profesor)loginObj.getUsuario();
            propuesta.setProfesor(profesor);
            if (propuestasService.addNewPropuesta(propuesta))
            {
                mv.addObject("message", "Nueva propuesta creada correctamente"); 

            }
            else
            {
                mv.addObject("message", "ERROR: no se pudo crear la propuesta");
            }
            mv.addObject("tipo", "profesor");
        }
        return mv;
        
    }
    
}
